package connect

import (
	"github.com/silenceper/pool"
	"fmt"
	"time"
)

/*
    初始化
    min // 最小链接数
    max // 最大链接数
    factory func() (interface{}, error) //创建链接的方法
    close func(v interface{}) error //关闭链接的方法
*/
func InitThread(min,max int,factory func() (interface{}, error), close func(v interface{}) error)(pool.Pool,error){

	poolConfig := &pool.PoolConfig{
		InitialCap: min,
		MaxCap:     max,
		Factory:    factory,
		Close:      close,
		//链接最大空闲时间，超过该时间的链接 将会关闭，可避免空闲时链接EOF，自动失效的问题
		IdleTimeout: 15 * time.Second,
	}
	p, err := pool.NewChannelPool(poolConfig)
	if err != nil {
		fmt.Println("Init err=", err)
		return nil,err
	}
	return p,nil
}

